package com.iostructure;

import java.io.*;

public class Ioclass {

    public static void main(String[] args) throws IOException{
        /*JAVAio主要包括字符流和字节流两大类，应对不同的场景
        字节流抽象类包括InputStream和OutputStream，其他类均继承于这两个抽象类
        字符流抽象类包括Reader和Writer，并且字节流其实是由字符流实现的
        对于字节流，处理文件使用FileInput/OutputStream，处理数字用DataInput/OutputStream等等，
            通过BufferedInputStream封装InputStream能够提升读写效率，因为增加了缓冲区
        对于字符流，处理文件用FileReader/FileWriter，处理字符串使用StringReader等
         */
        //字符流
        BufferedReader br = new BufferedReader(new FileReader("./test.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("./test.txt"));
        try{
            bw.write("这里是文件测试的第1行");
        }catch (IOException e){
            System.out.println(e.toString());
        }
        try{
            String temp = br.readLine();
            System.out.println(temp);
        }catch (IOException e){
            System.out.println(e.toString());
        }
        //字节流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("test.jpg"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.png"));
        try{
            bis.read();
        }catch(IOException e){
            System.out.println(e.toString());
        }
    }

}
